/**
 * 建议尽量全字段或者区域多字段进行匹配, 避免误触
 */
// Import("ocr.js")
Import("ggUtils_畅听.js")
// Import("ggUtils.js")
// SystemPrint.log(txt.readFileSdcard('/sdcard/config.ini'))
// SystemPrint.log(txt.readFileSdcard('/sdcard/configForver.ini'))
// SystemPrint.log(app.getTopPackName())
var APP_NAME_FQCT = '番茄畅听'
var PACK_NAME_FQCT = 'com.xs.fm'
var MAIN_PAGE_FLAG_FQCT = '首页'
var ENTER_CENTER_PAGE_FLAG_FQCT = '领现金'
var CENTER_PAGE_FLAG_FQCT = '福利中心'
var CT_MAX_JB = 330000

// SystemPrint.log(hui.getCheck('ct_sx').getValue())
if (hui.getCheck('ct_sx').getValue() == '上限450000') {
    CT_MAX_JB = 450000
}
if (hui.getCheck('ct_sx').getValue() == '上限850000') {
    CT_MAX_JB = 850000
}
if (hui.getCheck('ct_sx').getValue() == '无上限') {
    CT_MAX_JB = 9999999
}

function close_弹窗() {
    var ocr1close = opencv.OCREx('图色917270.cv');
    if (ocr1close != null) {
        if (ocr1close.getAllString() == 'x') {
            agentOrHidClick(ocr1close.getAllDetect()[0])
            if (ocrText('周末抢红包', '做任务可得', '更多红包', '参与本活动', '查看赚赚卡收益')) {
                backUntilFindView(() => ocrText('福利中心', '日常福利'))
            }
        }
    }
}

function skip_common() {
    agentOrHidClick(ocrTextMoreInRegion(0, 0.5, 1, 1, '取消', '放弃奖励', '暂不开启', '不开启'))

    if (ocrText('昨日总收益')) {
        watchGG_畅听独享(ocrText('看视频再', '看广告再'))
    }

    // agentOrHidClick(ocrText('立即领取'), 1, () => {
    //     agentOrHidClick(ocrText('明日再来'))
    // })
}

function skip_主界面的弹窗_FQCT() {

    skip_common()
    var detectsclose = opencv.findImagesEx('图色544560.cv');
    if (detectsclose != null) {
        agentOrHidClick(detectsclose[0])
    }

    //找图返回目标数组
    var detectsclose2 = opencv.findImagesEx('图色157487.cv');
    if (detectsclose2 != null) {
        agentOrHidClick(detectsclose2[0])
    }

    //找图返回目标数组
    var detectsdown = opencv.findImagesEx('图色782425.cv');
    if (detectsdown != null) {
        agentOrHidClick(detectsdown[0])
    }

}

function skip_任务中心的弹窗_FQCT(skipJbcenter) {
    log('关闭任务中心的弹窗开始')
    var allres = ocrAllRes()
    agentOrHidClick(ocrTextMoreByRes(allres, '取消', '以后再说', '放弃奖励', '暂不开启', '不开启', '收下奖励', '我知道'))

    if (ocrTextMoreByRes(allres, '昨日总收益')) {
        log('昨日总收益')
        watchGG_畅听独享(ocrText('看视频再', '看广告再'))
    }


    agentOrHidClick(ocrTextMoreByRes(allres, '开心收下', '不开启', '取消', '拒绝', '关闭', '退出', '领取成功'), 2, () => {
        log('开心收下不开启取消')
        if (ocrText('领取成功')) {
            agentOrHidback()
            sleep.second(1)
        }
    })

    if (ocrTextMoreByRes(allres, '周末抢红包', '做任务可得', '更多红包', '参与本活动', '查看赚赚卡收益', '更多直播', '说点什么')) {
        log('周末抢红包/更多红包')
        backUntilFindView(() => ocrText('福利中心', '日常福利', '收益日报'))
    }

    //找图返回目标数组
    var detectsclosex = opencv.findImagesEx('图色823476.cv');
    if (detectsclosex != null) {
        agentOrHidClick(detectsclosex[0])
    }

    var detectsdown = opencv.findImagesEx('图色573213.cv');
    if (detectsdown != null) {
        agentOrHidClick(detectsdown[0])
    }

    if (skipJbcenter == undefined) skipJbcenter = false
    if (!skipJbcenter) {
        if (ocrTextMoreByRes(allres, '提现高峰期')) {
            log('提现高峰期')
            agentOrHidback()
        }
    }

    log('关闭任务中心的弹窗结束')
}

function back2center_FQCT() {
    if (!backUntilFindView(() => ocrText('福利中心', '开宝箱得金币', '立即续签', '日常福利', '金币收益', '新人福利'))) {
        enter_任务中心_FQCT(true)
    }
}

// 启动任务
function start_app_FQCT() {
    // app.closeApp(PACK_NAME_FQCT)
    // sleep.millisecond(200)
    if (hasExcuteFunc('start_app_FQCT')) {
        return false
    }

    if (!startApp(PACK_NAME_FQCT)) {
        return false
    }

    // 跳过首页广告
    expectView(() => {
        return ocrText(MAIN_PAGE_FLAG_FQCT, '我的')
    }, (times) => {
        skip_主界面的弹窗_FQCT()

        if (times > 6) {
            agentOrHidback()
            sleep.millisecond(500)
            // todo
        }
        sleep.millisecond(500)
    }, (findView) => {
        // agentOrHidClick(findView)
    }, () => {
        if (ocrText('个人信息保护', '同意')) {
            setExcuteFunc('start_app_FQCT')
        }
    }, 8)


    if (hasExcuteFunc('start_app_FQCT')) {
        return false
    }


    return true
}

// 进入任务中心
// enter_任务中心_FQCT()
function enter_任务中心_FQCT(iskip) {
    log('进入任务中心')

    if (iskip == undefined) iskip = false

    // 进入任务中心
    expectView(() => {
        var flag领现金 = null
        // ocrTextTrue(ENTER_CENTER_PAGE_FLAG_FQCT)
        var ocr1领现 = opencv.OCREx('图色687523.cv');
        if (ocr1领现 != null) {
            flag领现金 = ocr1领现.getAllDetect()[0]
        }
        if (flag领现金 == null) {
            flag领现金 = ocrTextMoreInRegion(0, 0.85, 1, 1, ENTER_CENTER_PAGE_FLAG_FQCT, '领现', '开宝箱', '红包')
        }
        if (flag领现金 == null) {
            var findV = opencv.findImagesEx('图色798627.cv');
            if (findV != null) {
                flag领现金 = findV[0]
            }
        }

        // Otg.click(850, 2600)
        // agentOrHidClickOffectY(flag领现金, 20)   clickAbs(850, 2600)
        return flag领现金

    }, (times) => {
        skip_主界面的弹窗_FQCT()

        agentOrHidback()
        sleep.second(1)
        SystemPrint.warn('未找到主界面期望标志位')
    }, (findView, stepTimes) => {
        if (stepTimes == 1) {
            skip_主界面的弹窗_FQCT()
        }
        agentClicLeftOffectLeft(findView, 20)
    }, () => {
        agentOrHidback()
        sleep.second(2)
        agentOrHidback()
        sleep.second(2)
        // 失败后的方案 或者其它方案进入
        clickOffectY(3 / 4, 1, 60)
    }, 3)


    if (!iskip) {
        // 期望标志位
        expectView(() => {
            return ocrText(CENTER_PAGE_FLAG_FQCT, '立即签到', '开宝箱得金币', '立即续签', '日常福利', '金币收益', '新人福利')
        }, (times) => {
            // skip_任务中心的弹窗_FQCT()

            if (times > 3) {
                agentOrHidback()
                sleep.millisecond(500)
                // todo 未找到后 返回怎么做
            }
            sleep.millisecond(500)
            SystemPrint.warn('未找到任务界面期望标志位')
        }, (findView) => {
            // agentOrHidClick(findView)
        }, () => {
            clickOffectY(1 / 2, 1, 60)
        }, 3)
    }
}


function open_签到_FQCT() {
    printinfoOld('open_签到_FQCT-------------------------------')
    if (hasExcuteFunc('open_签到_FQCT') || getExcuteFuncTimes('open_签到_FQCT') > 6) {
        agentOrHidClick(ocrText('立即签到'), 2, () => {
            skip_任务中心的弹窗_FQCT()
        })
        return
    }

    if (hasExcuteFunc('skip_看视频_ct')) {
        log('看广告10金币跳过')
        return
    }

    if (isEnableSwitch('ct_error_mode')) {
        log('畅听异常模式只看翻卡')
        return
    }

    if (!isRunAppTask('taskct', '签到')) {
        setExcuteFunc('open_签到_FQCT')
        return
    }


    if (getExcuteFuncTimes('open_签到_FQCT') <= 2) {
        agentOrHidClick(ocrWaitForMoreTextMillisecond('立即签到', '从第', '天签到', 10), 2, () => {
            var flag视频 = ocrTextMoreInCenter('看视频领', '看视频再', '看广告再', '看广告领', '看视频广告', '看广告视频', '最高再')
            if (getDectNumber(flag视频) >= 2000) {
                watchGG_畅听独享(flag视频)
            }


        })

        var falg = ocrText('看视频签到')
        agentOrHidClick(falg, 3, () => {
            var spFLag = ocrText('看视频领', '看视频再', '看广告再', '看广告领', '看视频广告', '看广告视频', '最高再')
            if (spFLag) {
                if (getDectNumber(spFLag) >= 2000) {
                    watchGG_畅听独享(spFLag)
                }
            } else {
                watchGG_畅听独享(falg, true)
            }

            agentOrHidClick(ocrText('领取成功'), 2, () => {
                if (ocrText('领取成功')) {
                    agentOrHidback()
                    sleep.second(1)
                }
            })
        })

        back2center_FQCT()
    }
    skip_任务中心的弹窗_FQCT()

    log('滚动查找签到')
    moveUp2FindWidTxtMore((findView) => {
        agentOrHidClick(findView)

        if (ocrTextMoreInCenter('明日再来', '明天再来')) {
            setExcuteFunc('open_签到_FQCT')
            close_弹窗()
            return
        }

        agentOrHidClick(ocrText('立即签到', '看视频签到', '从第', '天签到', '重新签到'))
        // ocrTextTrue('立即签到')

    }, '明日签到', '立即签', '立即签到', '今日签到', '连续签到', () => {
        return ocrText('金币献爱心', '特别福利', '活动规则', '联系方式')
    })

    var flag视频 = ocrTextMoreInCenter('看视频领', '看视频再', '看广告再', '看广告领', '看视频广告', '看广告视频', '最高再')
    if (getDectNumber(flag视频) >= 2000 || isEnableSwitch('gg_force')) {
        watchGG_畅听独享(flag视频)
    }

    close_弹窗()
    addExcuteFuncTimes('open_签到_FQCT')
}

function open_开宝箱_FQCT() {
    printinfoOld('open_开宝箱_FQCT-------------------------------')
    if (hasExcuteFuncInTime是否在一段时间内执行过('open_开宝箱_FQCT')) {
        log('一段时间内执行过还需' + getExcuteFuncInTime一段时间内执行过还需多少时间('open_开宝箱_FQCT'))
        return
    }

    if (isEnableSwitch('ct_error_mode')) {
        log('畅听异常模式只看翻卡')
        return
    }

    if (hasExcuteFunc('open_开宝箱_FQCT')) {
        log('已经执行过开宝箱')
        return
    }
    if (!isRunAppTask('taskct', '开宝箱')) {
        return
    }

    if (hasExcuteFunc('skip_看视频_ct')) {
        log('看广告10金币跳过')
        return
    }

    if (hasForverExcuteFuncInTime是否在一段时间内执行过('open_开宝箱_FQCT')) {
        log('近期宝箱出现活动繁忙3天后再试')
        return
    }

    log('开宝箱')
    skip_任务中心的弹窗_FQCT()

    close_弹窗()

    // ocrTextTrue('开宝箱得金币')
    log('检测开宝箱得金币/开宝箱得')
    var flagsp = ocrText('开宝箱得金币', '开宝箱得')
    if (flagsp == null) {
        //找图返回目标数组
        var detects = opencv.findImagesEx('图色861264.cv');
        if (detects != null) {
            flagsp = detects[0]
        }
    }

    if (flagsp == null) {
        //找色返回目标数组
        var detectsbx = opencv.findMultiColorEx('图色129350.cv');
        if (detectsbx != null) {
            flagsp = detectsbx[0]
        }
    }


    agentOrHidClick(flagsp, 0, () => {

        if (ocrWaitForMoreTextMillisecond('活动繁忙', '稍后再试', 4)) {

            // 需要3天后才能检测是否正常
            if (getExcuteFuncTimes('error_活动繁忙_CT') >= 3) {
                //  setForverExcuteFuncInTime一段时间内不再执行('open_开宝箱_FQCT', 0)
                setForverExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCT', 3 * 24 * 60 * 60)
            }

            if (getExcuteFuncTimes('error_活动繁忙_CT') >= 1) {
                setExcuteFunc('error_活动繁忙_CT')
                setExcuteFuncInTime一段时间内不再执行('open_开宝箱_FQCT', 1 * 60 * 60)
                setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCT', 40 * 60)
            }
            addExcuteFuncTimes('error_活动繁忙_CT')

            return
        } else {
            addExcuteFuncTimes('error_活动繁忙_CT', 0)
            setExcuteFuncInTime一段时间内不再执行('open_开宝箱_FQCT', 3 * 60)
        }

        if (ocrText('继续赚', '续赚钱')) {
            setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCT', 3 * 60)
            skip_任务中心的弹窗_FQCT()
            log('结束继续赚')
            return
        }

        if (!ocrText('恭喜你获得', '宝箱奖励', '恭喜您', '您获得', '恭喜', '获得奖励')) {
            watchGG_多次看广告(flagsp, true, false, 1)
            // ocrTextTrue('领取成功')
            agentOrHidClick(ocrText('领取成功', '领取成', '取成功', '关闭'))
        }

        var flag视频 = ocrWaitForText('看视频再', '看广告再', '看视频领', '看广告领', '看视频广告', '看广告视频', '最高再')
        if (flag视频 == null) {
            agentOrHidClick(ocrText('立即领取'), 1, () => {
                flag视频 = ocrWaitForText('看视频再', '看广告再', '看视频领', '看广告领', '看视频广告', '看广告视频', '最高再')
            })
        }

        if (getExcuteFuncTimes('again_low_ct') < 1 || (getDectNumber(flag视频) >= 600 || getDectNumber(flag视频) < 5) || isEnableSwitch('gg_force')) {
            watchGG_畅听独享(flag视频)

            if (getDectNumber(flag视频) >= 2000) {
                addExcuteFuncTimes('open_开宝箱_FQCT_金币太低', 0)
            }
        } else {

            printinfoOld('open_开宝箱_FQCT_金币太低了')
            addExcuteFuncTimes('open_开宝箱_FQCT_金币太低')
        }

        if (getExcuteFuncTimes('open_开宝箱_FQCT_金币太低') > 2) {
            setExcuteFuncInTime一段时间内不再执行('open_开宝箱_FQCT', (isEnableSwitch('ct_fkms') ? 10 : 60) * 60)
            setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCT', 30 * 60)
        }

        if (getExcuteFuncTimes('open_开宝箱_FQCT_金币太低') > 5) {
            setExcuteFuncInTime一段时间内不再执行('open_开宝箱_FQCT', (isEnableSwitch('ct_fkms') ? 60 : 3 * 60) * 60)
            setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCT', 40 * 60)

            // 看宝箱低, 再次看也低
            if (getExcuteFuncTimes('again_low_ct') > 6) {
                setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCT', 2 * 60 * 60)
            }
        }
    })


    close_弹窗()
}

function watch_看广告_FQCT() {
    printinfoOld('watch_看广告_FQCT-------------------------------')
    if (!isRunAppTask('taskct', '看视频')) {
        return
    }
    // if (isEnableSwitch('ct_error_mode')) {
    //     log('畅听异常模式只看翻卡')
    //     return
    // }

    // if (hasForverExcuteFuncInTime是否在一段时间内执行过('start_收集金币_FQCT')) {
    //     log('近期异常屏蔽看广告')
    //     return
    // }
    if (hasExcuteFunc('watch_看广告_FQCT')) {
        return
    }

    if (hasExcuteFunc('skip_看视频_ct')) {
        log('看广告10金币跳过')
        return
    }

    log('看广告')
    skip_任务中心的弹窗_FQCT()
    log('看广告')
    move2Top(3, 300, '金币收益', '自动兑换成现金', '可微信提')
    moveUp2FindWidTxtMore((findView) => {
        if (getDectNumber(findView) == 2000
            || (getDectNumber(findView) >= 2000 && getDectNumber(findView) <= 8000)
            || isEnableSwitch('gg_force')) {
            watchGG_畅听独享(findView)
            //  watchGG_畅听独享({}, true)

            addExcuteFuncTimes('watch_看广告_CT')
        }
        close_弹窗()


    }, '看视频赚金币', '本次得')
}

function watch_收益日报_FQCT() {
    printinfoOld('watch_收益日报_FQCT-------------------------------')
    if (!isRunAppTask('taskct', '看视频')) {
        return
    }
    if (isEnableSwitch('ct_error_mode')) {
        log('畅听异常模式只看翻卡')
        return
    }
    if (hasForverExcuteFuncInTime是否在一段时间内执行过('start_收集金币_FQCT')) {
        log('近期异常屏蔽收益日报')
        return
    }
    if (hasExcuteFunc('watch_收益日报_FQCT') || getExcuteFuncTimes('watch_收益日报_FQCT') > 3) {
        return
    }

    if (hasExcuteFunc('skip_看视频_ct')) {
        log('看广告10金币跳过')
        return
    }

    log('收益日报')
    skip_任务中心的弹窗_FQCT()
    log('收益日报')
    move2Top(4, 300, '金币收益', '自动兑换成现金', '可微信提')
    moveUp2FindWidTxtMore((findView) => {
        agentOrHidClick(findView)
        if (ocrText('我知道了', '我知道')) {
            agentOrHidClick(ocrText('我知道了', '我知道'), 1, () => {
                setExcuteFunc('watch_收益日报_FQCT')
            })
            return
        }

        var ksFlag = ocrWaitForText('看视频领', '看视频再', '看广告再', '看广告领', '看视频广告', '看广告视频', '最高再')
        var jb = getDectNumber(ksFlag)
        if (jb == 0) {
            ksFlag = ocrTextMoreInCenter('看视频领', '看视频再', '看广告再', '看广告领', '看视频广告', '看广告视频', '最高再')
            jb = getDectNumber(ksFlag)
        }
        if (jb == 2000 || jb >= 3000 || isEnableSwitch('gg_force')) {
            watchGG_畅听独享(ksFlag)
        }
        if (jb < 1000 && jb > 0) {
            setExcuteFunc('watch_收益日报_FQCT')
        }
        close_弹窗()

    }, '收益日报', '日报奖励', '每天收益')
    addExcuteFuncTimes('watch_收益日报_FQCT')
}

function open_听书赚金币_FQCT() {
    printinfoOld('open_听书赚金币_FQCT-------------------------------')
    if (!isEnableSwitch('ct_read')) {
        return
    }

    if (hasForverExcuteFuncInTime是否在一段时间内执行过('open_听书赚金币_FQCT')) {
        log('近期出现过繁忙跳过')
        return
    }

    if (hasForverExcuteFuncInTime是否在一段时间内执行过('start_收集金币_FQCT')) {
        log('近期异常屏蔽听书赚金币')
        return
    }


    if (getExcuteFuncTimes('open_听书赚金币_FQCT_繁忙') >= 2) {
        setForverExcuteFuncInTime一段时间内不再执行('open_听书赚金币_FQCT', 3 * 24 * 60 * 60)
        return
    }

    if (getExcuteFuncTimes('open_听书赚金币_FQCT') > 15) {
        return
    }

    log('听书赚金币')
    skip_任务中心的弹窗_FQCT()

    close_弹窗()

    move2Top(7, 300, '金币收益', '自动兑换成现金', '可微信提')
    moveUp2FindWidTxtMore((findView) => {
        if (isInNearBy(findView, '去赚金币')) {
        } else {
            agentOrHidClick(findView, 0)
            if (ocrWaitForMoreTextMillisecond('活动繁忙', '请稍后再试')) {
                addExcuteFuncTimes('open_听书赚金币_FQCT_繁忙')
                return
            } else {
                addExcuteFuncTimes('open_听书赚金币_FQCT_繁忙', 0)
            }

            var flag视频 = ocrWaitForText('看视频领', '看视频再', '看广告再', '看广告领', '看视频广告', '看广告视频', '最高再')
            if (getDectNumber(flag视频) >= 1500 || isEnableSwitch('gg_force')) {

                if (!hasExcuteFunc('skip_看视频_ct')) {
                    watchGG_畅听独享(flag视频)
                }

            }
        }

        close_弹窗()

        addExcuteFuncTimes('open_听书赚金币_FQCT')

    }, '听书赚金币', '听书赚', () => {
        return ocrText('金币献爱心', '特别福利', '活动规则', '联系方式')
    })
}

function open_金币红包雨_FQCT() {
    printinfoOld('open_金币红包雨_FQCT')

    if (hasExcuteFunc('open_金币红包雨_FQCT')) {
        return
    }
    if (isEnableSwitch('ct_error_mode')) {
        log('畅听异常模式只看翻卡')
        return
    }
    if (hasForverExcuteFuncInTime是否在一段时间内执行过('start_收集金币_FQCT')) {
        log('近期异常屏蔽金币红包雨')
        return
    }

    if (!isRunAppTask('taskct', '红包雨')) {
        if (hasExcuteFunc('open_开宝箱_FQCT') && getConfig('ct_total') < 300000) {
            logSleep('被限制了强制执行金币红包雨')
        } else {
            return
        }
    }

    if (hasExcuteFuncInTime是否在一段时间内执行过('open_开宝箱_FQCT')) {
        return
    }

    if (hasExcuteFuncInTime是否在一段时间内执行过('open_金币红包雨_FQCT')) {
        return
    }

    if (hasExcuteFunc('skip_看视频_ct')) {
        log('看广告10金币跳过')
        return
    }

    log('金币红包雨')
    skip_任务中心的弹窗_FQCT()
    log('金币红包雨')
    move2Top(7, 300, '自动兑换', '现金收益')
    moveUp2FindWidTxtMore((findView) => {
        if (!ocrText('开启下一场', '稍后再领', '下一场') || ocrText('00:00:00')) {
            // watchGG_多次看广告(findView)
            agentOrHidClick(findView, 5)
            addExcuteFuncTimes('open_金币红包雨_FQCT')
            //找图返回目标数组
            for (var i = 0; i < 20; i++) {
                // var detects = opencv.findImagesEx('图色728470.cv');
                // if (detects != null) {
                //     // printinfoOld(detects);
                //     agentOrHidClick(detects[0])
                //     sleep.millisecond(500)
                // }
                click(0.5, 0.5, 0)
                sleep.millisecond(500)
            }


            // ocrWaitForText('你在红包雨中获得', 15, 1)

            // ocrText('看视频翻倍', true)
            var flag = ocrWaitForText('看视频翻倍领取', '翻倍领取', 10)
            if (flag == null) {
                flag = ocrTextMoreInRegion(0, 0.6, 1, 1, '翻倍领取', '看视频翻')
            }
            if (flag == null) {
                flag = ocrTextMoreInRegion(0, 0.5, 1, 1, '翻倍领取', '看视频翻')
            }

            var flag定位 = ocrTextMoreComplete('看视频翻倍')
            if (flag定位) {
                var reactkgg = flag定位.getRect()
                var max金币 = getMaxNumber(ocrGetAllStrInRegion(screen.widthToPercent(reactkgg.getLeft() - 350),
                    screen.heightToPercent(reactkgg.getTop() - 200),
                    reactkgg.getRight() + 60,
                    screen.heightToPercent(reactkgg.getTop())))

                if (max金币 >= 1500) {
                    if (flag) {
                        if (hasExcuteFunc('skip_看视频_again_ct')) {
                            watchGG_简单模式(flag)
                        } else {
                            watchGG_畅听独享(flag)
                        }
                    }
                }
                if (max金币 > 0 && max金币 < 1000) {
                    addExcuteFuncTimes('ctxs_hby_low')
                    if (getExcuteFuncTimes('ctxs_hby_low') >= 3) {
                        setExcuteFunc('open_金币红包雨_FQCT')
                    }
                }
            } else {
                if (flag) {
                    if (hasExcuteFunc('skip_看视频_again_ct')) {
                        watchGG_简单模式(flag)
                    } else {
                        watchGG_畅听独享(flag)
                    }

                }
            }

            setExcuteFuncInTime一段时间内不再执行('open_金币红包雨_FQCT', 21 * 60)
            agentOrHidClick(ocrText('返回福利', '返回'))
        }

    }, '金币红包雨', '一大波红包来')

    if (ocrText('你在红包雨中获得')) {
        watchGG_多次看广告(ocrWaitForMoreTextMillisecondInRegion(0, 0.4, 1, 0.85, 30, '看视频翻倍', '看视频翻'))
        agentOrHidClick(ocrText('直接领取'))
    }

}

// open_翻卡赢金币_FQCT()
function open_翻卡赢金币_FQCT() {
    log('翻卡赢金币')

    if (!isRunAppTask('taskct', '翻卡')) {

        if (hasExcuteFunc('open_开宝箱_FQCT') && getConfig('ct_total') < 300000) {
            logSleep('被限制了强制执行翻卡任务')
        } else {
            return
        }
    }

    if (hasExcuteFuncInTime是否在一段时间内执行过('open_翻卡赢金币_FQCT')) {
        //  setExcuteFuncInTime一段时间内不再执行('open_翻卡赢金币_FQCT', 0)
        log('已领取30分钟后再来')
        return
    }

    if (hasExcuteFunc('open_翻卡赢金币_FQCT')) {
        if (hasExcuteFunc('watch_看广告_FQCT') || getExcuteFuncTimes('watch_看广告_CT') > 40) {
            if (getExcuteFuncTimes('open_开宝箱_FQCT_金币太低') > 2) {
                setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCT', 2 * 60 * 60)
            }

        }
        return
    }

    log('开始翻卡赢金币')
    skip_任务中心的弹窗_FQCT()
    log('开始翻卡赢金币')
    move2Top(3, 300, '自动兑换', '现金收益')
    moveUpHigher2FindWidTxtMore((findView) => {
        if (isInNearBy(findView, '稍后再', '后再领')) {
            setExcuteFuncInTime一段时间内不再执行('open_翻卡赢金币_FQCT', 30 * 60)
            return
        }
        if (!ocrText('继续开启', '下一轮', '明日再来翻卡')) {
            // watchGG_多次看广告(findView)
            // if(ocrText('看视频翻卡'))
            agentOrHidClick(findView, 5)
            addExcuteFuncTimes('open_翻卡赢金币_FQCT')

            // ocrTextTrue('看视频继续翻十位')
            log('看第一个视频翻')
            var flag = ocrWaitForText('看1个视频翻', '看视频继续翻十位', '个视频翻', '翻百位', '翻千位')

            watchGG_简单模式(flag)
            skip_任务中心的弹窗_FQCT()
            log('立即翻卡')
            var flagbw = ocrWaitForMoreTextMillisecond('立即翻卡', '看视频翻卡', 3)
            if (flagbw == null) {
                move2Top(1, 300, '自动兑换', '现金收益')
                moveUpHigher2FindWidTxtMore((findView) => { }, '翻卡赢金币', '点击翻卡', () => {
                    return ocrText('金币献爱心', '特别福利', '活动规则', '联系方式')
                })
                flagbw = ocrWaitForMoreTextMillisecond('立即翻卡', '看视频翻卡', '翻卡赢金币', '点击翻卡', 3)
            }
            agentOrHidClickAbsoultX(flagbw, screen.percentToWidth(0.5))

            var isCanBreak = false
            for (let i = 0; i < 6; i++) {
                var successFlag = ocrWaitForMoreTextMillisecond('开心收下', 4)
                if (successFlag || isCanBreak) {
                    setExcuteFuncInTime一段时间内不再执行('open_翻卡赢金币_FQCT', 30 * 60)
                    agentOrHidClick(successFlag)
                    break
                }

                log(`看第${i + 1}个视频翻`)
                flag = ocrWaitForText('收下当前', '当前奖励')
                if (flag) {
                    agentOrHidClickOffectY(flag, 150)
                    watchGG_简单模式(flag, true)

                } else {
                    flag = ocrWaitForText('看1个视频翻', '看视频继续翻十位', '个视频翻', '翻百位', '翻千位')
                    watchGG_简单模式(flag)
                }

                skip_任务中心的弹窗_FQCT()
                log('立即翻卡')
                flagbw = ocrWaitForMoreTextMillisecond('立即翻卡', '看视频翻卡', 3)
                if (flagbw == null) {
                    move2Top(1, 300, '自动兑换', '现金收益')
                    moveUpHigher2FindWidTxtMore((findView) => {
                        if (isInNearBy(findView, '稍后再', '后再领', '继续开启', '下一轮')) {
                            log('已领取30分钟后再来')
                            setExcuteFuncInTime一段时间内不再执行('open_翻卡赢金币_FQCT', 30 * 60)
                            isCanBreak = true
                        }
                    }, '翻卡赢金币', '点击翻卡', () => {
                        return ocrText('金币献爱心', '特别福利', '活动规则', '联系方式')
                    })
                    flagbw = ocrWaitForMoreTextMillisecond('立即翻卡', '看视频翻卡', '翻卡赢金币', '点击翻卡', 3)
                }
                agentOrHidClickAbsoultX(flagbw, screen.percentToWidth(0.5))

            }
        } else {
            if (ocrText('明日再来翻卡')) {
                setExcuteFunc('open_翻卡赢金币_FQCT')
            }
        }

    }, '翻卡赢金币', '点击翻卡', () => {
        return ocrText('金币献爱心', '特别福利', '活动规则', '联系方式')
    })

}

function check_是否金币上限_FQCT() {
    if (getExcuteFuncTimes('start_收集金币_FQCT') < 5 && getExcuteFuncTimes('start_收集金币_FQCT') > 1) {
        log('5次后检查是否金币上限')
        return
    }
    log('是否金币上限')
    skip_任务中心的弹窗_FQCT()
    log('是否金币上限')
    move2Top(3, 300, '金币每天凌晨自动', '现金收益', '金币收益')

    //获取金币收益
    var totalGet = getMaxNumByNearByOffecXY(ocrWaitForText('金币收益'), 100, 0, screen.percentToWidth(0.5), 150)
    log('今日收益:' + totalGet)
    setConfig('ct_total', totalGet)
    if (!isEnableSwitch('ct_wsx')) {
        if (totalGet > CT_MAX_JB) {
            log('畅听上限不在继续任务')
            setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCT', 24 * 60 * 60)
            return
        }
    }


    if (hasExcuteFunc('check_是否金币上限_FQCT')) {
        return
    }

    agentOrHidClick(ocrText('金币收益'))
    if (ocrWaitForText('我的收益', '兑换听书', '余额献')) {
        log('检查详细情况')
        skip_任务中心的弹窗_FQCT(true)

        var flag = ocrText('金币收', '币收益')
        agentOrHidClick(flag, 0)
        agentClicLeftOffectLeft(flag, 50)

        var bxflag = ocrWaitForText('开宝箱激励', '宝箱激励')
        var jbnum = getMaxNumByNearByOffecXY(bxflag, -(screen.percentToWidth(0.4)), 20, screen.percentToWidth(1), 100)

        if (jbnum == 10) {
            if (isInNearBy(bxflag, getDayOfMonth('-'))) {
                log('金币异常10')
                addExcuteFuncTimes('check_是否金币上限_FQCT')
                // setForverExcuteFuncInTime一段时间内不再执行('ksp_fqct', 3 * 24 * 60 * 60)
                setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCT', 1 * 60 * 60)
                setExcuteFunc('open_开宝箱_FQCT')
                setExcuteFunc('skip_看视频_again_ct')
            }

        }


        var flag_看视频 = ocrText('看视频赚', '再看视频广告')
        var jbnum_看视频 = getMaxNumByNearByOffecXY(flag_看视频, -(screen.percentToWidth(0.4)), 20, screen.percentToWidth(1), 100)
        if (jbnum_看视频 == 10) {
            if (isInNearBy(flag_看视频, getDayOfMonth('-'))) {
                log('所有看视频上限了?')
                setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCT', 30 * 60)
                addExcuteFuncTimes('check_看视频赚上限_ct')
                if (getExcuteFuncTimes('check_看视频赚上限_ct') >= 1) {
                    log('所有看视频上限不再开')
                    setExcuteFunc('skip_看视频_ct')
                }
            }
        } else {
            addExcuteFuncTimes('check_看视频赚上限_ct', 0)
        }


        var flag_翻卡 = ocrText('翻卡', '赢金币')
        var jbnum_翻卡 = getMaxNumByNearByOffecXY(flag_翻卡, -(screen.percentToWidth(0.4)), 20, screen.percentToWidth(1), 100)
        if (jbnum_翻卡 <= 9) {
            if (isInNearBy(flag_翻卡, getDayOfMonth('-'))) {
                log('翻卡异常了?')
                setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCT', 24 * 60 * 60)
            }
        }

        if (totalGet < 100000 && jbnum >= 2000) {
            log('金币正常只开宝箱或晚点开其它任务')
            addExcuteFuncTimes('check_是否金币上限_FQCT', 0)
        }

        if (getExcuteFuncTimes('check_是否金币上限_FQCT') >= 2) {
            log('金币上限屏蔽开宝箱')
            setExcuteFunc('open_开宝箱_FQCT')
            setExcuteFunc('check_是否金币上限_FQCT')
        }


        backUntilFindView(() => ocrText('首页', '领现金'))
    }
}

// 进行浏览任务
// start_浏览任务_FQCT()
function start_浏览任务_FQCT() {
    if (getExcuteFuncTimes('start_浏览任务_FQCT') > 3) {
        return
    }
    if (!isEnableSwitch('ct_llrw')) {
        return
    }

    if (!start_app_FQCT()) {
        return
    }

    skip_主界面的弹窗_FQCT()

    // clickOffectY(0.5, 1, 60)
    // agentOrHidClick(ocrTextInRegion(0, 0.8, 1, 1, '听过'))
    var ocr1过 = opencv.OCREx('图色927697.cv');
    if (ocr1过 != null) {
        agentOrHidClick(ocr1过.getAllDetect()[0])
        // 进行播放
        expectView(() => {
            //找图返回目标数组
            // var detects播放中 = opencv.findImagesEx('图色959589.cv');
            // if (detects播放中 != null) {
            //     return detects播放中[0]
            // }
            return ocrText('最近听过的音乐', '章未听', '章未读')
        }, (steptimes) => {
            agentOrHidClick(ocrText('关闭'))

            sleep.second(1)

            if (steptimes >= 2) {
                agentSwipBig()
            }
        }, (findView) => {
            agentOrHidClick(findView)
            // var detects播放 = opencv.findImagesEx('图色116455.cv');
            // if (detects播放 != null) {
            //     agentOrHidClick(detects播放[0])
            // }
        })
    }

    var ocr1音乐 = opencv.OCREx('图色216346.cv');
    if (ocr1音乐 != null) {
        agentOrHidClick(ocr1音乐.getAllDetect()[0])
        agentOrHidClickOffectY(ocrText('推荐', '经典', '热门', '最近播放'), -200)
        agentOrHidClick(ocrText('原唱'))
    }

    // backUntilFindView(() => {
    //     return ocrText('')
    // })

    //找图返回目标数组
    watchGG_简单模式(ocrWaitForMoreTextMillisecond('立即观看', '看视频免费'))

    close_弹窗()

    addExcuteFuncTimes('start_浏览任务_FQCT')

    printinfoOld('听书时长')
    whilestep((steptimes) => {
        if (steptimes % 5 == 0) {
            if (ocrText('你的听书时长已用完')) {
                watchGG_简单模式(ocrText('立即观看', '看视频免费', '免费领时长'))
            }
        }

    }, 20 * 60)

    stopAllApp()
}

function open_预约_FQCT() {
    printinfoOld('open_预约_FQCT')
    skip_任务中心的弹窗_FQCT()
    log('预约')

    if (hasExcuteFunc('open_预约_FQCT')) {
        return
    }

    if (getExcuteFuncTimes('open_预约_FQCT') > 3) {
        setExcuteFunc('open_预约_FQCT')
        return
    }

    log('预约')
    move2Top(3, 300, '金币每天凌晨自动', '现金收益')
    moveUp2FindWidTxtMore((findView) => {
        if (isInNearBy(findView, '去预约') || isInNearBy(findView, '去领取')) {
            agentOrHidClick(findView)

            agentOrHidClick(ocrWaitForText('立即预约领取', '立即领取', '一键领取', '约领取', '继续预约'))
            addExcuteFuncTimes('open_预约_CDMFXS')

            watchGG_单次模式(ocrWaitForText('看视频再', '看广告再', '看视频领', '看广告领'))

            skip_任务中心的弹窗_FQCT()

            agentOrHidClick(ocrWaitForText('立即预约领取', '立即领取', '一键领取', '约领取', '继续预约'), 1, () => {
                skip_任务中心的弹窗_FQCT()
            })

            agentOrHidClick(ocrText('禁止'))
            back2center_FQCT()

            if (ocrText('领奖进度', '天天预约')) {
                agentOrHidback()
            }
        }
    }, '预约领金币', '今日预约', () => {
        return ocrText('金币献爱心', '特别福利', '活动规则', '联系方式')
    })
}


// start_浏览任务_FQCT()
// start_收集金币_FQCT()
function start_收集金币_FQCT(isForce) {
    if ((isBetweenTime(0, 6) && isEnableSwitch('ct_yjbzx') && !isForce)) {
        return
    }
    if (!HANGUP_APPNAMES.find(item => item == '畅听') && !isForce) {
        return
    }

    if (isEnableSwitch('ct_sxcs') && getExcuteFuncTimes('start_收集金币_FQCT') > 150 && !isForce) {
        return
    }

    if (hasForverExcuteFuncInTime是否在一段时间内执行过('start_收集金币_FQCT') && !isForce) {
        log('近期出现繁忙跳过')
        return
    }
    currentAppPackName = PACK_NAME_FQCT
    // closeApp(PACK_NAME_FQCT)

    if (!start_app_FQCT()) {
        return
    }

    enter_任务中心_FQCT()



    startThredTaskMaxTime超时结束(() => {
        open_签到_FQCT()

        open_开宝箱_FQCT()


        // 晚上或者金币被限制收入的时候才执行或繁忙时
        if (hasExcuteFunc('check_是否金币上限_FQCT')
            || !isRunAppTask('taskct', '开宝箱')
            || isBetweenTime(12, 24)
            || hasForverExcuteFuncInTime是否在一段时间内执行过('open_开宝箱_FQCT')
            || hasExcuteFunc('error_活动繁忙_CT')) {
            open_翻卡赢金币_FQCT()

            watch_看广告_FQCT()

            watch_收益日报_FQCT()

            open_金币红包雨_FQCT()

            // open_听书赚金币_FQCT()

            // open_预约_FQCT()

            open_开宝箱_FQCT()
        }

    }, 40 * 59)


    var totalGet = getMaxNumByNearByOffecXY(ocrWaitForText('金币收益'), 100, 0, screen.percentToWidth(0.5), 150)
    log('今日收益:' + totalGet)
    setConfig('ct_total', totalGet)
    if (getExcuteFuncTimes('start_收集金币_FQCT') > 10) {
        if (totalGet > CT_MAX_JB && totalGet < 1000000) {
            log('畅听上限不再继续任务')
            setExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCT', 24 * 60 * 60)
        }
    }

    // if (getExcuteFuncTimes('start_收集金币_FQCT') > 2) {
    //     if (totalGet < 3000) {
    //         setForverExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCT', 3 * 24 * 60 * 60)
    //         // hasForverExcuteFuncInTime是否在一段时间内执行过('start_收集金币_FQCT')
    //         // setForverExcuteFuncInTime一段时间内不再执行('start_收集金币_FQCT', 0)
    //     }
    // }

    check_是否金币上限_FQCT()

    log('逛商城')
    clickAbs(screen.percentToWidth(1) - 50, screen.percentToHeight(1) - 50)
    if (!ocrWaitForMoreTextMillisecond('我的订单')) {
        agentClickRight(ocrText('我的'))
    }

    agentClickRight(ocrWaitForMoreTextMillisecond('我的订单'), 1, () => {
        agentOrHidClick(ocrWaitForText('知道了', '我知道', 3, 1))

        var times = getRandomNum(4, 8)
        for (let i = 0; i < times; i++) {
            sleep.second(getRandomNum(6, 8))
            agentSwipSmallDown()
        }
        sleep.second(8)

        agentOrHidback()
        sleep.second(1)
    })


    addExcuteFuncTimes('start_收集金币_FQCT')
    // closeApp(PACK_NAME_FQCT)
    stopAllApp()
    log('畅听收集金币结束')
}

